package com.epoch.servicecommunication.controller;



import bean.vo.ResultInfo;

import com.epoch.servicecommunication.bean.Card;
import com.epoch.servicecommunication.service.CardService;

import exceptions.ParamsException;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.validation.Valid;

/**
 * @author mi
 */
@RestController
@Slf4j
public class CardController {
    @Resource
    private CardService cardService;
    /**
     * 添加用户发言
     * RequestBody、Valid和RequestParam会冲突，不使用注解
     * @param card
     */
//    @ApiOperation(value = "用户板块")
//    @PostMapping("epoch/stu/saveCard")
//    public ResultInfo saveCard(Card card,List<MultipartFile> multipartFiles){
//        ResultInfo resultinfo=new ResultInfo();
//        try{
//            int cardId=cardService.getMaxId()+1;
//            cardService.saveCard(card);
//            for(MultipartFile list:multipartFiles){
//                cardService.addPhoto(list,cardId);
//            }
//        }catch(ParamsException p){
//            p.printStackTrace();
//            resultinfo.setCode(p.getCode());
//            resultinfo.setMsg(p.getMsg());
//        }catch(Exception e){
//            e.printStackTrace();
//            resultinfo.setCode(500);
//            resultinfo.setMsg("添加用户发言失败！");
//        }
//        return resultinfo;
//    }

    @ApiOperation(value = "用户版块")
    @PostMapping("epoch/stu/saveCard")
    public ResultInfo saveCard(@RequestBody Card card){
        ResultInfo resultinfo=new ResultInfo();
        try{
            cardService.saveCard(card);
        }catch(ParamsException p){
            p.printStackTrace();
            resultinfo.setCode(p.getCode());
            resultinfo.setMsg(p.getMsg());
        }catch(Exception e){
            e.printStackTrace();
            resultinfo.setCode(500);
            resultinfo.setMsg("添加用户发言失败！");
        }
        return resultinfo;
    }

//    @ApiOperation(value = "用户版块")
//    @PostMapping("epoch/stu/saveCardFile")
//    public JSON saveCardFile(MultipartFile file){
//        Integer cardId = null;
//        if ((cardId = cardService.getMaxId()) == null){
//            cardId = 1;
//        }
//        String url=cardService.addPhoto(file, cardId);
//        JSONObject json=new JSONObject();
//        json.set("errno",0);
//        JSONArray arr = new JSONArray();
//        JSONObject data= new JSONObject();
//        arr.add(data);
//        data.set("url",url);
//        json.set("data",arr);
//        return json;
//    }
    /**
     * 管理端删除用户发言
     * @param id
     */
    @ApiOperation(value = "用户版块")
    @DeleteMapping("epoch/stu/deleteCard")
    public ResultInfo deleteCard(@Valid Integer id){
        ResultInfo resultinfo=new ResultInfo();
        try{
            cardService.deleteCard(id);
        }catch(ParamsException p){
            p.printStackTrace();
            resultinfo.setCode(p.getCode());
            resultinfo.setMsg(p.getMsg());
        }catch(Exception e){
            e.printStackTrace();
            resultinfo.setCode(500);
            resultinfo.setMsg("删除用户发言失败！");
        }
        return resultinfo;
    }
    /**
     * 朋友圈查询用户打卡
     * @return Card
     */
    @ApiOperation(value = "用户版块")
    @GetMapping("epoch/stu/selectCard")
    public ResultInfo getCard(){
        ResultInfo resultinfo=new ResultInfo();
        try{
            resultinfo.setResult(cardService.getCard());
        }catch(ParamsException p){
            p.printStackTrace();
            resultinfo.setCode(p.getCode());
            resultinfo.setMsg(p.getMsg());
        }catch(Exception e){
            e.printStackTrace();
            resultinfo.setCode(500);
            resultinfo.setMsg("查询用户发言失败！");
        }
        return resultinfo;
    }

}
